package com.sss.demo.util;

import java.sql.*;

public class DBUtil {
    /**常量的命名需要全大写.如果是两个单词,用_分割*/
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/dbtest?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";

    static{
        //让服务器在启动的过程当中,直接加载mysql驱动.
        try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection(){
        try {
           return DriverManager.getConnection(URL,USER,PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("获取连接数据库的connection对象错误");
        }
        return null;
    }
    /**
     *  方法的重载和重写的区别?
     *      重载是在一个类里面实现,而重写是必须有继承关系的两个类里面实现的.
     *      重载是方法名相同,参数的类型或个数不同.
     *      重写是子类的的方法必须与父类完全一致.
     *
     *      重写只有修改符可以往大去修饰.
     * */
    public static void close(Connection conn , Statement stat , ResultSet rs){
        //关闭遵循的是,先打开的资源最后关闭.
        try {
            if(rs!=null){ rs.close(); }
            if(stat!=null){stat.close();}
            if(conn != null){conn.close();}
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


    public static void close(Connection conn , Statement stat ){
        //关闭遵循的是,先打开的资源最后关闭.
        try {
            if(stat!=null){stat.close();}
            if(conn != null){conn.close();}
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
